誰(shuí)可以從使用 CDN 中受益?任何擁有可能同時(shí)被多個(gè)用戶請(qǐng)求的網(wǎng)站或移動(dòng)應(yīng)用程序的人都可以從 CDN 中受益。它們對(duì)于用戶遍布全球的大型復(fù)雜網(wǎng)站以及具有大量動(dòng)態(tài)內(nèi)容的網(wǎng)站或移動(dòng)應(yīng)用程序特別有用。CDN 可以為您的網(wǎng)站提供的一些好處包括:
- Web 和移動(dòng)用戶的加載時(shí)間更快
- 在交通繁忙時(shí)快速擴(kuò)展
- 最大限度地降低源點(diǎn)流量高峰的風(fēng)險(xiǎn),確保站點(diǎn)穩(wěn)定性
- 由于流量卸載(減少源負(fù)載)而降低基礎(chǔ)設(shè)施成本
- 更好的網(wǎng)站性能
CDN 還為不同類型的企業(yè)和組織提供了許多特定的好處,例如:
- 電子商務(wù):CDN 可以幫助電子商務(wù)網(wǎng)站快速有效地交付內(nèi)容,即使在黑色星期五和假期等交通繁忙時(shí)期也是如此。
- 政府:通過(guò)使用 CDN,內(nèi)容豐富的大型網(wǎng)站可以更快、更高效地向市民提供重要信息。
- 財(cái)務(wù):CDN 為銀行機(jī)構(gòu)提供了快速、安全和可靠的基礎(chǔ)設(shè)施,以向消費(fèi)者和分析師提供敏感數(shù)據(jù)。
- 媒體/出版:媒體網(wǎng)站需要提供及時(shí)和最新的信息,CDN 可以幫助媒體公司在故事實(shí)時(shí)展開(kāi)時(shí)更新標(biāo)題和新聞主頁(yè),并在數(shù)據(jù)過(guò)時(shí)時(shí)刪除數(shù)據(jù)。
- 移動(dòng)應(yīng)用程序:CDN 為移動(dòng)應(yīng)用程序提供基于位置的動(dòng)態(tài)內(nèi)容,從而減少加載時(shí)間并提高響應(yīng)能力。
- 技術(shù)和SaaS:CDN 可幫助技術(shù)網(wǎng)站每天向 Web 用戶提供數(shù)十億個(gè)請(qǐng)求,而不會(huì)降低性能。
現(xiàn)代 CDN 與傳統(tǒng) CDN
CDN 自 1990 年代后期就已存在,但傳統(tǒng) CDN 通常落后于硬件和技術(shù)的進(jìn)步,并且無(wú)法提供與現(xiàn)代 CDN 相同的優(yōu)勢(shì)。通常,這些遺留 CDN 不是內(nèi)置的敏捷軟件環(huán)境,在這種環(huán)境中,公司不斷迭代產(chǎn)品、整合客戶反饋并改進(jìn)產(chǎn)品。這些 CDN 已經(jīng)存在了五年或更長(zhǎng)時(shí)間,沒(méi)有太大變化,并且現(xiàn)代 CDN 已經(jīng)改進(jìn)了嚴(yán)重的低效率:
僅緩存靜態(tài)內(nèi)容
傳統(tǒng) CDN 只能緩存靜態(tài)內(nèi)容,這相當(dāng)簡(jiǎn)單,因?yàn)樗粫?huì)根據(jù)用戶輸入而改變。靜態(tài)內(nèi)容的一些示例包括圖像、視頻、CSS 和 Javascript。另一方面,動(dòng)態(tài)內(nèi)容包括需要服務(wù)器邏輯的頻繁更改的內(nèi)容——例如,信用卡交易或電子商務(wù)網(wǎng)站上個(gè)人購(gòu)物車的更新。動(dòng)態(tài)內(nèi)容通常被歸類為“不可緩存”,因?yàn)橛捎跀?shù)據(jù)的敏感性,它必須通過(guò)源服務(wù)器。
這在某種程度上是正確的。有很大一部分動(dòng)態(tài)內(nèi)容可以緩存——不包括個(gè)人數(shù)據(jù)但仍然不可預(yù)測(cè)且經(jīng)常更改的內(nèi)容。這種動(dòng)態(tài)內(nèi)容是事件驅(qū)動(dòng)的——基于人或機(jī)器的動(dòng)作。想想股票價(jià)格、用戶對(duì)文章的評(píng)論、需要立即更新的新聞標(biāo)題或體育比分。大多數(shù) CDN 將此內(nèi)容視為“不可緩存”,就像對(duì)待其他動(dòng)態(tài)內(nèi)容一樣,但它實(shí)際上可以被緩存。
邊緣有限的存儲(chǔ)空間
傳統(tǒng) CDN 只能為客戶提供有限的邊緣空間,因?yàn)樗鼈冎饕蕾囆D(zhuǎn)硬盤(pán)驅(qū)動(dòng)器。這意味著他們必須優(yōu)先考慮哪些內(nèi)容緩存在邊緣,哪些內(nèi)容緩存在更遠(yuǎn)的地方。這通常意味著較大的網(wǎng)站優(yōu)先于較小的網(wǎng)站。或者,現(xiàn)代 CDN 建立在大型固態(tài)驅(qū)動(dòng)器 (SSD) 網(wǎng)絡(luò)上,可以在邊緣緩存所有內(nèi)容,因此所有客戶都能從中受益。
客戶提示的代理
現(xiàn)代 CDN 的另一個(gè)主要好處是反向代理。使用傳統(tǒng)的 CDN,客戶需要在第一時(shí)間將他們的內(nèi)容直接上傳到緩存服務(wù)器。現(xiàn)代 CDN 根據(jù)請(qǐng)求從客戶的源服務(wù)器獲取和存儲(chǔ)內(nèi)容,因此無(wú)需預(yù)先加載緩存服務(wù)器。使用傳統(tǒng) CDN 的網(wǎng)站通常被迫在源服務(wù)器上保留動(dòng)態(tài)內(nèi)容,這可能會(huì)導(dǎo)致流量高峰和性能下降,從而違背了擁有 CDN 的初衷。
舊 CDN 的安全注意事項(xiàng)
CDN 已經(jīng)存在很長(zhǎng)時(shí)間了,但它們的構(gòu)建方式不盡相同。雖然邊緣云平臺(tái)通過(guò)將事物移動(dòng)到邊緣來(lái)超越傳統(tǒng)的內(nèi)容交付網(wǎng)絡(luò),但存在更多根本差異;CDN 制定自己的關(guān)于如何提供網(wǎng)絡(luò)流量的規(guī)則并不少見(jiàn),因?yàn)樵诙x HTTP 時(shí) CDN 并不存在。為了改善這一點(diǎn),我們正在與其他平臺(tái)合作,以標(biāo)準(zhǔn)化 CDN 的基本協(xié)議處理。
不久前,安全研究人員注意到了一段時(shí)間以來(lái)一直在關(guān)注內(nèi)容交付網(wǎng)絡(luò) CDN 工程師的問(wèn)題;可以將相互競(jìng)爭(zhēng)的 CDN 指向彼此以將它們關(guān)閉。來(lái)自內(nèi)容交付網(wǎng)絡(luò)中轉(zhuǎn)發(fā)循環(huán)攻擊的摘要:
惡意客戶可以通過(guò)在一個(gè) CDN 內(nèi)或跨多個(gè) CDN 創(chuàng)建轉(zhuǎn)發(fā)循環(huán)來(lái)攻擊內(nèi)容交付網(wǎng)絡(luò) (CDN) 的可用性。這種轉(zhuǎn)發(fā)循環(huán)會(huì)導(dǎo)致重復(fù)甚至無(wú)限期地處理一個(gè)請(qǐng)求,從而導(dǎo)致不希望的資源消耗和潛在的拒絕服務(wù)攻擊。為了評(píng)估此類轉(zhuǎn)發(fā)循環(huán)攻擊的實(shí)用性,我們檢查了 16 個(gè)流行的 CDN 提供商,發(fā)現(xiàn)它們都容易受到某種形式的此類攻擊。
由于許多 CDN 的規(guī)模龐大——全球每個(gè) CDN 的鏈接容量為每秒 TB——這可能是一個(gè)非常可怕的問(wèn)題。無(wú)論是故意攻擊還是意外配置錯(cuò)誤,都可能會(huì)因相關(guān) CDN 而導(dǎo)致互聯(lián)網(wǎng)的大部分癱瘓。事實(shí)上,最近與我討論這個(gè)問(wèn)題的一位 CDN 工程師說(shuō),這是“讓他徹夜難眠”的問(wèn)題之一。
許多CDN的邊緣云平臺(tái)已經(jīng)具備環(huán)路保護(hù)機(jī)制,通常通過(guò)使用標(biāo)頭來(lái)識(shí)別已經(jīng)看到的請(qǐng)求。問(wèn)題是這些解決方案彼此之間沒(méi)有協(xié)調(diào),因此一個(gè) CDN 可能被配置為有意或無(wú)意地刪除另一個(gè) CDN 的循環(huán)檢測(cè)標(biāo)頭。正確配置的 CDN 還可以幫助保護(hù)網(wǎng)站免受一些常見(jiàn)的惡意攻擊,例如分布式拒絕服務(wù) (DDOS) 攻擊。
新興的先進(jìn) CDN 技術(shù)
我們想要更好的東西,所以我們開(kāi)始與其他 CDN 以及內(nèi)容平臺(tái)的同事交談。結(jié)果是HTTP 工作組中針對(duì)CDN-Loop 請(qǐng)求標(biāo)頭的一個(gè)小規(guī)范,兩周前互聯(lián)網(wǎng)工程指導(dǎo)組(IESG)批準(zhǔn)將其作為標(biāo)準(zhǔn)軌道 RFC 發(fā)布。這是一個(gè)非常簡(jiǎn)單的機(jī)制。實(shí)施 CDN 需要在他們發(fā)出的每個(gè)請(qǐng)求中添加它,并保護(hù)它免受意外(或不太意外)的修改,以便他們可以更可靠地檢測(cè)和緩解此類循環(huán)——即使循環(huán)涉及多個(gè) CDN。我們對(duì)向前邁出的這一小步感到非常高興,因?yàn)檫@是改變的標(biāo)志;從早期開(kāi)始,CDN 之間就此類問(wèn)題沒(méi)有進(jìn)行太多協(xié)調(diào),更不用說(shuō)為我們的客戶提供一致的體驗(yàn)了。因此,雖然規(guī)模很小,但它是重要的一步,因?yàn)樗鼧?biāo)志著一個(gè)愿意合作的行業(yè)。